Software libraries may include library functions. The library functions may be configured to help applications use hardware efficiently. An application may call a selected library function with a function call that includes specified arguments. Arguments of library functions that are associated with mathematical operations, for example, matrix multiplication, may indicate an amount of processing as well as a size of data to be processed. In other words, an argument associated with a dimension of a matrix is related to the size of the matrix and, thus, the amount of data to be processed and the amount of processing to be performed in multiplying the matrices. In operation, the library function is configured to internally process the arguments and perform the associated operations. Processing the arguments corresponds to overhead associated with the library function operations. The overhead may include, but is not limited to, checking arguments for correctness, walking a decision tree, constructing an internal processing path, generating auxiliary data (e.g., a table of coefficients), etc. This overhead is multiplied if the function call occurs in the body of the loop.
Although the following Detailed Description will proceed with reference being made to illustrative embodiments, many alternatives, modifications, and variations thereof will be apparent to those skilled in the art.